package com.tju.resource.server;

import com.tju.resource.tool.result.Result;
import com.tju.resource.model.SysPermission;


/**
 * Role business interface
 *
 * @Author CLS
 * @Date 2021/12/31 14:22
 */
public interface SysPermissionService {
    /**
     * 查询菜单
     *
     * @param permission 菜单信息
     * @return 菜单列表
     */
    public Result<Object> selectSysPermissionList(SysPermission permission);


    /**
     * 查询菜单数量
     *
     * @param parentId 菜单父级id
     * @return结果
     */
    public int selectCountPermissionByParentId(Long parentId);

    /**
     * 查询菜单使用数量
     *
     * @param permissionId 菜单ID
     * @return 结果
     */
    public int selectCountRolePermissionByPermissionId(Long permissionId);

    /**
     * 删除菜单管理信息
     *
     * @param parentId 菜单ID
     * @return 结果
     */
    public Result<Object> deletePermissionByParentId(Long parentId);

    /**
     * 根据菜单ID查询信息
     *
     * @param parentId 菜单ID
     * @return 菜单信息
     */
    public SysPermission SysPermissionByParentId(Long parentId);

    /**
     * 校验菜单名称是否唯一
     *
     * @param permission 菜单信息
     * @return 结果
     */
    public String checkPermissionNameUnique(SysPermission permission);

    /**
     * 添加菜单
     *
     * @param permission 菜单信息
     * @return
     */
    public Result<Object> insertPermission(SysPermission permission);

    /**
     * 修改菜单
     *
     * @param permission 菜单信息
     * @return
     */
    public Result<Object> updatePermission(SysPermission permission);

    /**
     * 菜单查询
     *
     * @param ugc
     * @return
     */
    Result<Object> getMenusByUserName(String ugc);
}
